import pymysql

class DBHelper:
    #获取连接
    def get_connection(self):
          return pymysql.connect(host='localhost',user='root',password='root123',db='student',charset='utf8')

    #执行修改操作（insert，update，delete）
    def update(self,sql,params):
        #获取连接
        conn = self.get_connection()
        #获取 cursor 对象
        cursor = conn.cursor()
        try:
        #执行sql语句
            cursor.execute(sql,params)
            #提交事务
            conn.commit()
        except Exception as e:
            #回滚事务
            conn.rollback()
            print(e)
            #出现异常之后，回滚事务
            conn.rollback()
        finally:
            #关闭cursor对象
            cursor.close()
            #关闭连接
            conn.close()

    #执行查询的操作（select）
    #* 参数名前面加星号表示可变参数，可传可不传
    def select(self,sql,*params):
        conn = self.get_connection()
        cursor = conn.cursor()
        try:
            #执行sql命令
            cursor.execute(sql,params)
            #返回查询结果
            return cursor.fetchall()
        except Exception as e:
            print(e)
        finally:
            cursor.close()
            conn.close()

    #执行删除的操作 （delete）
    def delete(self,sql,params):
        conn = self.get_connection()
        cursor = conn.cursor()
        try:
            # 执行sql语句
            cursor.execute(sql,params)
            #提交事务
            conn.commit()
        except Exception as e:
            #回滚事务
            conn.rollback()
            print(e)
        finally:
            cursor.close()
            conn.close()